import jsCookie from 'js-cookie'

/**
 *  操作 Cookie
 * @method set 设置
 * @method get 获取
 * @method remove 移除
 * @method clear 移除全部
 */
export default {
  /**
   * 设置 Cookie
   * @param {string} key - Cookie 的名称
   * @param {*} val - 要设置的 Cookie 值
   */
  set(key, val) {
    jsCookie.set(key, JSON.stringify(val))
  },

  /**
   * 获取 Cookie
   * @param {string} key - Cookie 的名称
   * @returns {*} - 返回指定名称的 Cookie 值，如果不存在则返回解析后的 JSON 值或原始值
   */
  get(key) {
    const json = jsCookie.get(key)
    try {
      return JSON.parse(json)
    }
    catch (error) {
      return json
    }
  },

  /**
   * 移除 Cookie
   * @param {string} key - 要移除的 Cookie 的名称
   */
  remove(key) {
    jsCookie.remove(key)
  },
}
